// package com.wangji92.arthas.plugin.demo.test;
//
// import cn.hutool.core.io.FileUtil;
// import cn.hutool.core.util.StrUtil;
// import com.sun.corba.se.spi.orbutil.fsm.FSM;
// import com.sun.corba.se.spi.orbutil.fsm.Input;
//
// import javax.validation.constraints.NotNull;
// import javax.validation.constraints.Size;
// import java.awt.*;
// import java.io.IOException;
// import java.io.Serializable;
// import java.text.MessageFormat;
// import java.time.LocalDateTime;
// import java.util.ArrayList;
// import java.util.Arrays;
// import java.util.List;
//
// public class AppMain<X extends Number, Y extends Number> extends Thread implements Serializable, com.sun.corba.se.spi.orbutil.fsm.Action {
//
//     public static final int staticFiled4 = 1234;
//     static String staticFiled0 = StrUtil.repeat("t_", 1000_000);
//     static String staticFiled1 = "JAVA_HOME";
//     static String staticFiled2 = System.getenv(staticFiled1);
//     static int staticFiled3;
//
//     static {
//         System.out.println("static1");
//     }
//
//     static {
//         System.out.println("static1");
//     }
//
//     public String instanceFiled2;
//     protected String instanceFiled1 = "user.home";
//     String instanceFiled3;
//     private String userHome = System.getProperty("user.home");
//     @NotNull(message = "不能为null")
//     private int instanceFiled0 = 4321;
//     private int instanceFiled0000 = 111;
//     //看是否 超过128 不适用常量池了
//     private int instanceFiled1111 = 130;
//
//     {
//         System.out.println("n {}1");
//     }
//
//     {
//         System.out.println("n {}2");
//     }
//
//
//     public AppMain() {
//         this.instanceFiled2 = System.getenv(this.instanceFiled1);
//         this.instanceFiled3 = null == this.instanceFiled2 ? "" : this.instanceFiled2 + "xxx!";
//         System.out.println("instanceFiled : " + (instanceFiled0000 + instanceFiled1111));
//         System.out.println("init!");
//     }
//
//     public AppMain(String x) {
//         super(() -> {
//             System.out.println("test java 8 lambda !!!!!!");
//         });
//         this.instanceFiled2 = System.getenv(this.instanceFiled1);
//         this.instanceFiled3 = null == this.instanceFiled2 ? "" : this.instanceFiled2 + "xxx!";
//         System.out.println("initX! " + x);
//
//         switch (x) {
//             case "1":
//                 System.out.println("switch:" + 1);
//                 break;
//             case "2":
//                 System.out.println("switch:" + 2);
//                 break;
//             default:
//         }
//     }
//
//     public static void main(String[] args) throws AWTException {
//         // -54, -2, -70, -66    ->   CA  FE  BA  BE
//         byte[] cafeBabeByte = "CAFEBABE".getBytes();
//         System.out.println(Arrays.toString(cafeBabeByte));
//         System.out.println("cafeBabeHexStr2:");
//         for (byte b : cafeBabeByte) {
//             System.out.println(Integer.parseInt(b + "", 2));
//         }
//
//         byte[] classBytes = FileUtil.readBytes("C:\\Users\\liuxiongkang\\Desktop\\AppMain.class");
//         // 用 二进制 读取出来为 10 进制字节数组
//         System.out.println("class Byte:" + Arrays.toString(classBytes));
//         // 10 进制字节数组  转为 16 进制字符串
//         String classHexStr = parseByte2HexStr(classBytes);
//         System.out.println("classHexStr:" + Arrays.toString(StrUtil.split(classHexStr, 2)));
//
//
//         if (LocalDateTime.now().getHour() <= 22) {
//             for (int i = 0; i < 3; ++i) {
//                 if (i == 0) {
//                     continue;
//                 }
//                 // execute(args);
//                 if (i == 1) {
//                     break;
//                 }
//             }
//         }
//     }
//
//     public static String parseByte2HexStr(byte[] buf) {
//         //先  byte(1字节) & 0xFF 转int(10进制),   再 Integer.toHexString 转16进制
//         StringBuilder sb = new StringBuilder();
//         for (byte b : buf) {
//             String hex = Integer.toHexString(b & 0xFF);
//             if (hex.length() == 1) {
//                 hex = '0' + hex;
//             }
//             sb.append(hex.toUpperCase());
//         }
//         return sb.toString();
//     }
//
//     private static void execute(String[] args) throws AWTException {
//         try {
//             Thread.sleep(1234L);
//         } catch (InterruptedException e) {
//             Thread.interrupted();
//         } catch (Exception e) {
//             //e.printStackTrace();
//         } finally {
//             System.out.println("finally!!");
//         }
//
//         AppMain appMain = new AppMain();
//         AppMain appMain2222 = new AppMain();
//         appMain.actor(appMain.instanceFiled0, 3, staticFiled1, staticFiled3);
//         // FileUtil.appendUtf8Lines(ListUtil.toList(new String[]{DateUtil.now().concat(" hold2 ").concat(String.valueOf(staticFiled3))}), "C:\\mouse_holder\\log.txt");
//     }
//
//     private static void invokeStatic(String paramsStr, int paramsInt) {
//         System.out.println(MessageFormat.format("paramsStr :{0} paramsInt:{1}", paramsStr, paramsInt));
//     }
//
//     private <T extends String> X actor(@Size(min = 1, max = 2) int x, int y, T offset, X xx) throws AWTException {
//         Robot robot = new Robot();
//         robot.mouseMove(x, y);
//         System.out.println("offsetV:" + offset);
//         System.out.println("xxV:" + xx);
//         return xx;
//     }
//
//     public int sayHello(String s) throws IOException {
//         System.out.println("hello " + s);
//         System.out.println("user.home: " + userHome);
//         List<Integer> interfaceRef = new ArrayList();
//         ArrayList<Integer> classRef = new ArrayList();
//
//         interfaceRef.add(1);
//         classRef.add(1);
//
//         interfaceRef.stream().forEach(System.out::println);
//         classRef.stream().forEach(System.out::println);
//
//         invokeStatic("222", 333);
//
//         invokeprivate("222", 333);
//
//         super.hashCode();
//
//         try {
//             System.out.println("try");
//         } catch (RuntimeException e) {
//             System.out.println("runtimeexception!");
//         } finally {
//             System.out.println("finally");
//         }
//
//         return 100;
//     }
//
//     private void invokeprivate(String paramsStr, int paramsInt) {
//         System.out.println(staticFiled1 + MessageFormat.format("paramsStr :{0} paramsInt:{1}", paramsStr, paramsInt));
//     }
//
//     private void invokeprivate2(String paramsStr, int paramsInt) {
//         System.out.println(instanceFiled1 + MessageFormat.format("paramsStr :{0} paramsInt:{1}", paramsStr, paramsInt));
//     }
//
//     private void invokeprivate3(String paramsStr, int paramsInt) {
//         String repeatVar = StrUtil.repeat("t_", 1000_000);
//         System.out.println(repeatVar + MessageFormat.format("paramsStr :{0} paramsInt:{1}", paramsStr, paramsInt));
//     }
//
//     @Override
//     public void doIt(FSM fsm, Input in) {
//         System.out.println("doIt :" + in);
//     }
//
//     static class TestInnerClassStatic {
//         int vv1 = 222;
//
//         TestInnerClassStatic() {
//         }
//     }
//
//     class TestInnerClass {
//         int vv1 = 111;
//
//         TestInnerClass() {
//         }
//     }
// }